package thomas.bier.client;

import thomas.bier.shared.Bier;
import thomas.bier.shared.Gebruiker;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Widget;

public class BeerDelegate {
	private BeerServiceAsync service = (BeerServiceAsync) GWT.create(BeerService.class );

	public void login(String nickname, String ww){
		AsyncCallback<Gebruiker> inlog = new AsyncCallback<Gebruiker>() {
			@Override
			public void onFailure(Throwable caught) {
				System.out.println("Error bij methode login: " + caught);
			}
			@Override
			public void onSuccess(Gebruiker result) {
				CurrentGebruiker.setGebruiker(result);
			}
		};
		service.login(nickname, ww, inlog);
	}

	public void registerUser(Gebruiker g){
		AsyncCallback<Boolean> register = new AsyncCallback<Boolean>() {
			@Override
			public void onFailure(Throwable caught) {
				System.out.println("Error bij methode registerUser: " + caught);
			}
			@Override
			public void onSuccess(Boolean result) {
				if (result) {
					Window.alert("U heeft zich succesvol geregistreerd!");
				}
			}
		};
		service.registerUser(g, register);
	}

	public void addBier(Bier b){
		AsyncCallback<Boolean> addbier = new AsyncCallback<Boolean>() {

			@Override
			public void onFailure(Throwable caught) {
				System.out.println("Error bij methode addBier: " + caught);			
			}
			@Override
			public void onSuccess(Boolean result) {
				// TODO Doe iets met succesvol toegevoegd(= result == true) of niet(result==false)				
			}
		};
		service.addBier(b, addbier);
	}

	public void registerShow() {
		BierEntrypoint.main.add(BierEntrypoint.register.registerShow());
	}	
}